# -*- coding: cp1252 -*- # Dette er forslag til Python-program for MENA1000 Lab 2 # Her ?ver vi p? ? definere og bruke funksjoner, samt ? regne pH. # Vi vil bruke en funksjon log10(x) fra Python-pakken math, # og i tillegg skal vi definere funksjonen p(x) = -LOg10(x). # Her er oppgaven: # Skriv i et programmeringsspr?k (for eksempel Python) en funksjon p(H) # for beregning av pH; y = p(H) = -log(H). Funksjonen kan selvf?lgelig # ogs? brukes til pOH, pKa, osv. Bruk funksjonen i et program som ber om # og leser inn Ka for en syre, og s? beregner pKa, pKb for korresponderende # base, samt pH og pOH i en 1 M l?sning av syren og i en buffer best?ende av # syre og base i like mengder. (Ettersom hvordan du velger ? regne kan bruke # funksjonen f? eller mange ganger. Pr?v gjerne begge.) Dokument?r programmet # i eller med journalen. # Vi trenger funksjonen log10(x) fra pakken math. Vi importerer denne, # for enkelhetsskyld kunne vi importert alt fra denne pakken ved ? bruke * from math import log10 def p(x): p = -log10(x) return p # Vi leser inn Ka: Ka = input("Skriv inn Ka for syren: ") # Vi bergner pKa vha funksjonen vi laget: pKa = p(Ka) print "pKa =",pKa # Vi beregner pKb: pKb=14-pKa print "pKa =",pKb C0 = 1 #Syrekonsentrasjonen er 1 M # Vi beregner s? [H+] som x: # Vi har fra protolysen for syren at Ka = x**2/(c0-x) # Vi kan l?se denne som en 2. gradsligning: x = (-Ka + sqrt(Ka*Ka+4.0*Ka*C0))/2 pH = p(x) print "pH i 1 M av denne syren:",pH print "pOH i 1 M av denne syren:", 14-pH # For en buffer av dette syre-base-paret i like store mengder har vi at # pH = pKa: print "pH i en buffer med like mengder syre og base:", pKa